# -*- coding: utf-8 -*-
'''
@author: Ricardo Faria 6315 e Luís Freitas 5602
@date: 8 abril de 2013
Classe que permite criar um obtecto Insertion
'''
class Insertion:
        
        def __init__(self, A):
                '''
                Construtor da classe Insertion
                '''
                self.A = A

        
        def insertion_sort (self):
                '''
                Metodo responsavel pela ordenaçao da lista
                Este metodo percorre todos os elementos comparando o elemento n com o elemento
                n-1. Este metodo e repetido ate a lista estar completamente ordenada        
                '''
                for j in range (0, len(self.A)): 
                        key = self.A[j]
                        i = j - 1
                        while i >= 0 and self.A[i] > key:
                                self.A[i+1] = self.A[i]
                                i-=1
                        self.A[i+1] = key


